Computers frequently need to communicate over communication systems. Although it is possible in principle to design a computer with a communications capability as an integral part of the computer, in practice the communications capability is normally designed as a broadly distinct component, a digital communication unit which interfaces between the computer and the communication system. The computer (excluding the communication unit) is then normally termed the host computer or system.
There are many different types of communication systems. Among the many factors which may vary are whether the system is serial or parallel, and the speed of the system (which may be between some hundreds of bits per second and megabits per second). There is also a variety of different protocols, concerned with such things as different ways of formatting data to be transmitted and different ways of controlling the routing of messages through the communication system. There are also various different techniques for error detection and correction. There are also, of course, many different types of computer.
The degree of complexity which is required of a communication unit depends on the circumstances which it is intended for. A unit which is intended for a specific application involving low speeds and a highly reliable communication system which requires minimal switching or routing and little or no error detection and correction may be relatively simple. But such a unit would be useful only in very specific circumstances. In general, communication units tend to be designed for as much generally as feasible, so that they can be used in conjunction with a wide variety of host computers and a wide range of communications systems.
This means that communication units are normally of considerably complexity. A typical such unit will naturally have a substantial amount of circuitry concerned with specific communications tasks such as a variety of interfacing devices for different types of communication system, and of course an interfacing means for the host computer. In addition, it will have a fairly powerful general-purpose data processing capability, provided by e.g. a RISC processor (conventionally termed a CPU), 32-bit data and address buses (or a combined data and address bus), associated instruction and data memories of a size typically of the order of a megaword, and various other associated circuitry.
The complexity of the communication unit means that it is liable to a variety of faults, typically arising from the complexity of the programs which it requires to deal with the wide variety of host computers and communication systems which it has to interface with and the wide variety of unexpected combinations of conditions which it may encounter during operation.
The communication unit is, as noted above, in effect a peripheral unit or component of the host computer. As with other peripheral units, the communication unit can therefore be designed so that it can be monitored by the host computer. A state or condition register can be provided which will be set, during the operations of the unit, to indicate the occurrence of a variety of specific conditions, and the host computer can monitor this register. Similarly, a control register can be provided which can be set by the host computer to control a variety of operations in the unit.
Obviously, several state or condition registers and several control registers can be provided, to enable the host computer to monitor and control the operation of the unit in more detail. Also, the unit's own processing power can be utilized, by including suitable programs in its memory which use the unit's own CPU to select the conditions to be reported through the state or condition register and to select the unit's response to control signals from the host computer passed through the control register. This allows the unit to be monitored and controlled by the host computer to as close a degree as required.